

package modelo;

import proyecto2011.Archivo;

/**
 * Clase que representa un Dominio
 * @author Jaime Painefilu - Juan Demo
 */

public class Dominio {
		private String nombre;
		private String tipoValor;
		private int longitudValor;	
		private String condicion;
		
		public Dominio(String nombre, String tipoValor, int longitudValor) {
			super();
			this.nombre = nombre;
			this.tipoValor = tipoValor;
			this.longitudValor = longitudValor;
			
		}

		public String getNombre() {
			return nombre;
		}

		public void setNombre(String nombre) {
			this.nombre = nombre;
		}

		public String getTipoValor() {
			return tipoValor;
		}

		public void setTipoValor(String tipoValor) {
			this.tipoValor = tipoValor;
		}

		public int getLongitudValor() {
			return longitudValor;
		}

		public void setLongitudValor(int longitudValor) {
			this.longitudValor = longitudValor;
		}

		public String getCondicion() {
			return condicion;
		}

		public void setCondicion(String condicion) {
			this.condicion = condicion;
		}

		@Override
		public String toString() {
			return "DOMINIO: " +	this.nombre + " "+this.tipoValor + " ("+this.longitudValor+") "+ "\n" 
						+"{ "+this.condicion+"} "; 	
			
		}
		
		public void showDominio(Archivo arch){
			arch.escribirLinea(this.toString()+"\n");
		}

                public void compararDominios(Dominio dom, Archivo arch){
                    if(!(this.condicion.equals(dom.condicion))|| !(this.longitudValor==dom.longitudValor) || !(this.tipoValor.equals(dom.tipoValor))){
                        arch.escribirLinea("     << ADVERTENCIA! >> INDEXS '"+this.nombre+"' distintos!!, en:  ");
                        if(!(this.condicion.equals(dom.condicion))) arch.escribirLinea(" Condicion\n");
                        if(!(this.longitudValor==dom.longitudValor)) arch.escribirLinea("  Longitud de Valor\n");
                        if(!(this.tipoValor.equals(dom.tipoValor))) arch.escribirLinea("  Tipo de Valor\n");
                        arch.escribirLinea("     "); this.showDominio(arch);
                        arch.escribirLinea("     "); dom.showDominio(arch);
                    }
                    else arch.escribirLinea("     ** Los Dominios: '"+this.nombre+"'  son iguales.\n");
                }
		
}
